// 活动状态统一管理工具

// 活动状态类型映射
export const getActivityStatusType = (status, signupDeadline = null) => {
  // 如果已截止，优先显示截止状态
  if (signupDeadline && new Date(signupDeadline) < new Date()) {
    return 'warning'
  }
  
  const types = {
    'SIGNUP_OPEN': 'success',
    'SIGNUP_CLOSED': 'warning',
    'FULL': 'danger'
  }
  return types[status] || 'info'
}

// 活动状态文本映射
export const getActivityStatusText = (status, signupDeadline = null) => {
  // 如果已截止，优先显示截止状态
  if (signupDeadline && new Date(signupDeadline) < new Date()) {
    return '已截止'
  }
  
  const texts = {
    'SIGNUP_OPEN': '报名中',
    'SIGNUP_CLOSED': '报名已截止',
    'FULL': '已满员'
  }
  return texts[status] || status
}

// 报名按钮文本映射
export const getSignupButtonText = (item, mySignupList = []) => {
  // 检查是否已报名
  if (Array.isArray(mySignupList) && mySignupList.some(signup => signup.activityId === item.id)) {
    return '已报名'
  }
  // 检查是否已截止
  if (item.signupDeadline && new Date(item.signupDeadline) < new Date()) {
    return '已截止'
  }
  if (item.status === 'SIGNUP_CLOSED') return '报名已截止'
  if (item.status === 'FULL') return '已满员'
  return '立即报名'
}

// 报名状态类型映射
export const getSignupStatusType = (status) => {
  const types = {
    'PENDING': 'warning',
    'APPROVED': 'success',
    'REJECTED': 'danger'
  }
  return types[status] || 'info'
}

// 报名状态文本映射
export const getSignupStatusText = (status) => {
  const texts = {
    'PENDING': '待审批',
    'APPROVED': '已通过',
    'REJECTED': '已拒绝'
  }
  return texts[status] || status
}

// 检查活动是否可以报名
export const canSignup = (item, mySignupList = []) => {
  if (item.type !== 'ACTIVITY') return false
  // 检查是否已报名
  if (Array.isArray(mySignupList) && mySignupList.some(signup => signup.activityId === item.id)) {
    return false
  }
  // 检查是否已截止
  if (item.signupDeadline && new Date(item.signupDeadline) < new Date()) {
    return false
  }
  return item.status === 'SIGNUP_OPEN'
} 